// 考的知识点两个：
// 1. 正则表达式匹配；
// 2. toString(16)转换进制；

// 做的过程中注意：
// 1. 数值超界（0-255）
// 2. 不足两位补零
function rgb2hex(sRGB) {
  return sRGB.replace(/^rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)$/, function (
    a,
    r,
    g,
    b
  ) {
    ;(r = ('0' + r.toString(16)).slice(-2)),
      (g = ('0' + g.toString(16)).slice(-2)),
      (b = ('0' + b.toString(16)).slice(-2))
    return '#' + r + g + b
  })
}

const rgb = 'rgb(0, 0, 0)'
const result = rgb2hex(rgb)
console.log(result)

/*

	    答案代码

	*/

function rgb2hex2(sRGB) {
  var reg = /\((\d+),\s*(\d+),\s*(\d+)\)/

  if (reg.test(sRGB)) {
    var result = ''
    sRGB.replace(reg, function (text, a, b, c) {
      result =
        '#' +
        ('0' + parseInt(a).toString(16)).slice(-2) +
        ('0' + parseInt(b).toString(16)).slice(-2) +
        ('0' + parseInt(c).toString(16)).slice(-2)
    })
    return result
  }
  return sRGB
}
